package com.csun.cmny.provider.service;

import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcWatchOldman;
import com.csun.cmny.provider.model.dto.device.DevicePageQuery;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.dto.watch.BindDmcWatchOldmanDto;
import com.csun.cmny.provider.model.dto.watch.OldmanBindWatchReqDto;
import com.csun.cmny.provider.model.dto.watch.WatchPageQuery;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import com.github.pagehelper.PageInfo;
import io.swagger.models.auth.In;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-01-24 09:19
 * @Description: the interface dmc watch oldman service
 */
public interface DmcWatchOldmanService extends IService<DmcWatchOldman> {

    /**
     * bind dmc watch oldman
     *
     * @param bindDmcWatchOldmanDto bind dmc watch oldman dto
     *
     * @return  the int.
     */
    Integer bindDmcWatchOldman(BindDmcWatchOldmanDto bindDmcWatchOldmanDto);

    /**
     * break dmc watch oldman by device id
     *
     * @param deviceId  device id
     *
     * @return  the int.
     */
    Integer breakDmcWatchOldmanByDeviceId(Long deviceId);

    /**
     * break dmc watch old man by oldman id
     *
     * @param oldmanId  oldman id
     *
     * @return  the int.
     */
    Integer breakDmcWatchOldmanByOldmanId(Integer oldmanId);

    /**
     * query watch list with page
     *
     * @param watchPageQuery watch page query
     *
     * @return the page info.
     */
    PageInfo queryWatchListWithPage(WatchPageQuery watchPageQuery);

    /**
     * query oldman bind watch list
     *
     * @param oldmanBindWatchReqDto oldman bind watch req dto
     *
     * @return  the list.
     */
    List<Integer> queryOldmanBindWatchList(OldmanBindWatchReqDto oldmanBindWatchReqDto);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}
